The present invention relates in general to data processing for computer operations and/or computer-controlled industrial process operations. The practice has been to use a small data processor unit rather than a large and sophisticated computer for handling relatively complex digital data, whenever manageable. Several such small units have been combined in order to form a multi-processor system whenever data can be advantageously handled in a particular grouping by separate data processor units. The present invention involves more particularly a multi-processor system in which a central memory is used in common by several data processors. With such a system it is possible to take advantage of a common data pool located in shared memory without the complexity of moving the data pool between the individual data processors. In such instance, however, some priority scheme is necessary in order to arbitrate the access of the processors into the shared memory.
Priority schemes are known in the computer art which establish, on a selective basis and on request, a dialogue between several parts of a computer system. Thus, grouped input-output units, a number of memories, or a plurality of data processors, may be interconnected for a preestablished duration and by priority, singly, or in combination, with the other functional units of the system.
The priority schemes known in the prior art basically fall into one of the three following categories:
(1) Linear, or Top-down. With this scheme, the requests for interconnection are served from each port one at a time, in numerical order from the first to the last. This mode of selection is economical and sufficiently fast. However, when repeated requests from a high-priority port exceed the processing rate, all lower-priority ports are locked out until that series of requests is discontinued.
(2) Rotational priority. With this scheme, each port is served for one request only, and all ports are scanned in numerical order. Here, no port is capable of blocking others by continuous requests. However, due to the inherent sequential treatment, there is no weight assigned to any particular port for service. This scheme tends to be slow and complex, if high speed is required.
(3) Queue, or first in-first out. This scheme is inherently slower, and results in more complex circuitry. Also, it does not favor one port over another when it is desired.
From U.S. Pat. No. 3,478,321 it is known to provide priority storage acessing control for establishing a priority order between a plurality of units requesting access and a plurality of requested units in which the established order or priority is altered whenever under the highest priority access either the requested unit is busy or the unit controlling access to the requested unit is busy. The object with such system is to allow requests of lower priority to be processed whenever operation via a channel of higher priority has become temporarily blocked. It is known from U.S. Pat. No. 3,798,591 to provide a variable priority facility by rotating the priority order after each priority has been served thereby to give equal opportunity to each channel of a system comprised of requesting units multiplexed with a single port requested unit.
An object of the present invention is to provide a high speed priority system without increased complexity while giving priority to certain requests over other requests which have just been served.
Another object of the present invention is to provide a linear-type of priority which is automatically changed into a rotational-type of priority when the request rate of one device would cause a lower priority device to be prevented access.